package view;

import java.awt.*;
import java.sql.SQLException;

import javax.swing.*;
import javax.swing.LayoutStyle.*;
import javax.swing.GroupLayout.*;

import controller.*;
import estado.*;

import model.*;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class JuegoCopiaAlta extends JPanel {
	private static final long serialVersionUID = 1L;
	private JComboBox<String> juegoCopiaAltaAnyo = new JComboBox<String>();;
	private JComboBox<String> juegoCopiaAltaMes = new JComboBox<String>();;
	private JComboBox<String> juegoCopiaAltaDia = new JComboBox<String>();;

	/**
	 * Create the panel.
	 */
	public JuegoCopiaAlta(final Juego juego) {
		setSize(new Dimension(300, 200));
		
		JLabel juegoCopiaAltaTit = new JLabel("Cargar Copia de Juego");
		juegoCopiaAltaTit.setAlignmentX(Component.CENTER_ALIGNMENT);
		juegoCopiaAltaTit.setHorizontalAlignment(SwingConstants.CENTER);
		juegoCopiaAltaTit.setHorizontalTextPosition(SwingConstants.CENTER);
		juegoCopiaAltaTit.setFont(new Font("Tahoma", Font.BOLD, 15));
		
		JLabel juegoCopiaAltaNombre = new JLabel("Juego:");
		juegoCopiaAltaNombre.setHorizontalAlignment(SwingConstants.RIGHT);
		JLabel juegoCopiaAltaNivelador = new JLabel("");
		
		JLabel juegoCopiaAltaFechaAdquisicionLbl = new JLabel("Fecha de adquisici\u00F3n:");
		juegoCopiaAltaFechaAdquisicionLbl.setHorizontalAlignment(SwingConstants.RIGHT);

		final Integer anio=Integer.parseInt(juego.getFechaEstreno().substring(0, 4));
		final Integer mes=Integer.parseInt(juego.getFechaEstreno().substring(5, 7));
		final Integer dia=Integer.parseInt(juego.getFechaEstreno().substring(8, 10));
		for(Integer i=anio;i<=2020;i++)juegoCopiaAltaAnyo.addItem(i.toString());
		for(Integer i=mes;i<=12;i++)juegoCopiaAltaMes.addItem(i.toString());
		for(Integer i=dia;i<=31;i++)juegoCopiaAltaDia.addItem(i.toString());
		
		JLabel juegoCopiaAltaFechaBarra1 = new JLabel("/");
		JLabel juegoCopiaAltaFechaBarra2 = new JLabel("/");
		juegoCopiaAltaAnyo.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				if(juegoCopiaAltaAnyo.getItemCount() != 0){
					if(juegoCopiaAltaMes.getItemCount() > 0)juegoCopiaAltaMes.removeAllItems();
					if(anio == Integer.parseInt((String) juegoCopiaAltaAnyo.getSelectedItem())){
						for(Integer i=mes;i<=12;i++)juegoCopiaAltaMes.addItem(i.toString());
					}else{
						for(Integer i=1;i<=12;i++)juegoCopiaAltaMes.addItem(i.toString());
					}
				}
			}
		});
		juegoCopiaAltaMes.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				if(juegoCopiaAltaMes.getItemCount() != 0){
					if(juegoCopiaAltaDia.getItemCount() > 0)juegoCopiaAltaDia.removeAllItems();
					if(mes == Integer.parseInt((String) juegoCopiaAltaMes.getSelectedItem())){
						for(Integer i=dia;i<=31;i++)juegoCopiaAltaDia.addItem(i.toString());
					}else{
						for(Integer i=1;i<=31;i++)juegoCopiaAltaDia.addItem(i.toString());
					}
				}
			}
		});
		
		JButton juegoCopiaAltaBtn = new JButton("Cargar");
		juegoCopiaAltaBtn.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				String fechaAdquisicion=(String)juegoCopiaAltaAnyo.getSelectedItem()+"-"+(String)juegoCopiaAltaMes.getSelectedItem()+"-"+(String)juegoCopiaAltaDia.getSelectedItem();
				EstadoCopia estadoCopia=new Disponible();
				JuegoCopia juegoCopia=new JuegoCopia(null,juego,fechaAdquisicion,estadoCopia);
				try{
					JuegoController.getJuegoController().guardarCopia(juegoCopia);
				}catch(SQLException e){}
			}
		});
		
		JLabel juegoCopiaNombre = new JLabel(juego.getNombre()+" - "+juego.getPlataforma().getNombre());
		
		GroupLayout groupLayout = new GroupLayout(this);
		groupLayout.setHorizontalGroup(
			groupLayout.createParallelGroup(Alignment.LEADING)
				.addGroup(groupLayout.createSequentialGroup()
					.addContainerGap()
					.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
						.addGroup(groupLayout.createSequentialGroup()
							.addGap(356)
							.addComponent(juegoCopiaAltaNivelador, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
						.addGroup(groupLayout.createSequentialGroup()
							.addGroup(groupLayout.createParallelGroup(Alignment.TRAILING)
								.addComponent(juegoCopiaAltaNombre, GroupLayout.DEFAULT_SIZE, 103, Short.MAX_VALUE)
								.addComponent(juegoCopiaAltaFechaAdquisicionLbl, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
							.addPreferredGap(ComponentPlacement.RELATED)
							.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
								.addComponent(juegoCopiaNombre)
								.addGroup(groupLayout.createSequentialGroup()
									.addComponent(juegoCopiaAltaAnyo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
									.addPreferredGap(ComponentPlacement.RELATED)
									.addComponent(juegoCopiaAltaFechaBarra1)
									.addPreferredGap(ComponentPlacement.RELATED)
									.addComponent(juegoCopiaAltaMes, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
									.addPreferredGap(ComponentPlacement.RELATED)
									.addComponent(juegoCopiaAltaFechaBarra2, GroupLayout.PREFERRED_SIZE, 4, GroupLayout.PREFERRED_SIZE)
									.addGap(4)
									.addComponent(juegoCopiaAltaDia, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
								.addComponent(juegoCopiaAltaBtn))
							.addGap(127))
						.addComponent(juegoCopiaAltaTit, GroupLayout.DEFAULT_SIZE, 356, Short.MAX_VALUE))
					.addGap(0))
		);
		groupLayout.setVerticalGroup(
			groupLayout.createParallelGroup(Alignment.LEADING)
				.addGroup(groupLayout.createSequentialGroup()
					.addContainerGap()
					.addComponent(juegoCopiaAltaTit, GroupLayout.PREFERRED_SIZE, 19, GroupLayout.PREFERRED_SIZE)
					.addGap(18)
					.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
						.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
							.addComponent(juegoCopiaAltaNombre)
							.addComponent(juegoCopiaNombre))
						.addComponent(juegoCopiaAltaNivelador))
					.addPreferredGap(ComponentPlacement.UNRELATED)
					.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
						.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
							.addComponent(juegoCopiaAltaAnyo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
							.addComponent(juegoCopiaAltaFechaAdquisicionLbl)
							.addComponent(juegoCopiaAltaFechaBarra1)
							.addComponent(juegoCopiaAltaMes, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
						.addGroup(groupLayout.createSequentialGroup()
							.addGap(3)
							.addComponent(juegoCopiaAltaFechaBarra2))
						.addComponent(juegoCopiaAltaDia, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
					.addGap(18)
					.addComponent(juegoCopiaAltaBtn)
					.addContainerGap(66, Short.MAX_VALUE))
		);
		setLayout(groupLayout);

	}
}
